package cn.yzgy.yzgyoa.ucenter.service;

import cn.yzgy.yzgyoa.ucenter.dto.SysDepartmentDTO;
import cn.yzgy.yzgyoa.ucenter.entity.SysDepartment;
import cn.yzgy.yzgyoa.ucenter.entity.UserInfoDetail;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Yqsen
 * @since 2021-06-03
 */
public interface ISysDepartmentService extends IService<SysDepartment> {

    /**
     * 获取部门列表
     * @param departmentPage 部门分页对象
     * @return 部门列表
     */
    IPage<SysDepartmentDTO> getAllDepartment(Page<SysDepartmentDTO> departmentPage);

    /**
     * 获取部门列表下拉
     * @return 部门列表下拉
     */
    List<SysDepartmentDTO> getDepartmentTree();
    /**
     * 新增部门数据
     * @param  queryDto 部门对象
     * @param currentUser 当前用户
     * @return 成功或失败状态
     */
    boolean addDepartment(SysDepartment queryDto, UserInfoDetail currentUser);
    /**
     * 修改部门数据
     * @param  queryDto 部门对象
     * @param currentUser 当前用户
     * @return 成功或失败状态
     */
    boolean updateDepartment(SysDepartment queryDto, UserInfoDetail currentUser);
    /**
     * 级联删除部门数据
     * @param id 部门id
     * @return 成功状态
     */
    boolean deleteDepartment(Integer id);
}
